action muxer: Add some convenience api
authorMatthias Clasen <mclasen@redhat.com>
Fri, 14 Jun 2019 17:41:45 +0000 (13:41 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Sun, 16 Jun 2019 01:40:12 +0000 (21:40 -0400)
Instead of duplicating this code in multiple places,
add an api to look up an action group for a prefixed
name, and return the unprefixed name at the same time.

gtk/gtkactionmuxer.c
gtk/gtkactionmuxerprivate.h

index 72edec793b7b082ca1a73db76ac943f4945f2847..d2e58b5dd4fa52e1ae98e573343e96797506a8e8 100644 (file)
@@ -166,6 +166,18 @@ gtk_action_muxer_find_group (GtkActionMuxer  *muxer,
   return group;
 }
 
+GActionGroup *
+gtk_action_muxer_find (GtkActionMuxer  *muxer,
+                       const char      *action_name,
+                       const char     **unprefixed_name)
+{
+  Group *group;
+
+  group = gtk_action_muxer_find_group (muxer, action_name, unprefixed_name);
+
+  return group->group;
+}
+
 static void
 gtk_action_muxer_action_enabled_changed (GtkActionMuxer *muxer,
                                          const gchar    *action_name,
@@ -959,3 +971,4 @@ gtk_normalise_detailed_action_name (const gchar *detailed_action_name)
 
   return action_and_target;
 }
+
index b696fff29e51862096e09b03e294f2202b4e5092..2eea5483c6eec04c3a911d1796033d492f2ecb98 100644 (file)
@@ -44,6 +44,9 @@ void                    gtk_action_muxer_remove                         (GtkActi
 const gchar **          gtk_action_muxer_list_prefixes                  (GtkActionMuxer *muxer);
 GActionGroup *          gtk_action_muxer_lookup                         (GtkActionMuxer *muxer,
                                                                          const gchar    *prefix);
+GActionGroup *          gtk_action_muxer_find                           (GtkActionMuxer *muxer,
+                                                                         const char     *action_name,
+                                                                         const char    **unprefixed_name);
 GtkActionMuxer *        gtk_action_muxer_get_parent                     (GtkActionMuxer *muxer);
 
 void                    gtk_action_muxer_set_parent                     (GtkActionMuxer *muxer,